package com.xwj.nio.buffer;

import java.nio.IntBuffer;

/**
 * nio缓冲区buffer
 * @author xwj
 * @date 2020/6/9
 */
public class NioBufferDemo {
    public static void main(String[] args) {
        IntBuffer intBuffer = IntBuffer.allocate(10);
        for (int i = 0; i < 10; i++) {
            intBuffer.put(i);
        }
        // 将缓冲区转换为读模式
        intBuffer.flip();
        for (int i = 0; i < 10; i++) {
            if(i == 2) {
                intBuffer.mark();
            }
            System.out.println(intBuffer.get());
        }

        // Buffer.mark()方法的作用是将当前position的值保存起来，放在mark属性中，让mark属性记住这个临时位置；
        // 之后，可以调用Buffer.reset()方法将mark的值恢复到position中。
        intBuffer.reset();
        for (int i = 2; i < 10; i++) {
            System.out.println(intBuffer.get());
        }

        // 将缓冲区转换为写入模式
//        intBuffer.compact();
        intBuffer.clear();
        for (int i = 0; i < 10; i++) {
            intBuffer.put(i);
        }

    }
}
